#pragma once
#include "../LibDGGSBase/DGGSDefine.hpp"

#ifdef BUILDING_PYD
#include<vector>
#else
#include <memory>
namespace std {
    template <typename T, typename Allocator >
    class vector;
}
#endif

using namespace NNU::DGGS;
using namespace NNU::DGGS::Base;

_NNU_DGGS_BEGIN
namespace Kernel {

    /// <summary>
    ///  storing topology query results
    /// </summary>
    class QueryResult
    {
    private:
        std::vector<DGGSElementCode, std::allocator<DGGSElementCode>>* codeData;
        int size;

    public:
        QueryResult();

        ~QueryResult();

        bool setData(DGGSElementCodeIter *iter, int codeNum);

        DGGSElementCode getGridCodeByIndex(int index);

        int getSize();
    };

}
_NNU_DGGS_END